// 只要涉及Promise的, 都是链式处理
var p = new Promise((resolve) => {
  // 异步处理逻辑, 类似于接口
  console.log(1)
  setTimeout(() => {
    console.log(2)
    resolve()
  }, 1000)
})

async function f1() {
  await p // 这里需要等promise执行完, 才继续执行, 下一行
  // 遇到await 会先跳出函数, 等await后面的函数执行完, 会继续执行
  console.log(3)
}

f1()
console.log(4)

function f2() {
  p.then()
  console.log(33)
}
f2()
console.log(44)
